[求助]c++编程

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:30:44
#include <iostream>
using namespace std;
class student
{public:
student(int n,float s):num(n),score(s){}
void setstudent();
int num;
float score;

};

void student::setstudent()
{student t;
cin>>t.num>>t.score;
}

void main()
{cout<<"please input the information:";
student *p=&s;
for (int i=1;i<=4;i++)
s[i].setstudent();
}
为什么他提示是没有默认的构造可用啊
请达人指点错误的地方!
有个地方错了
void main()
{cout<<"please input the information:";
student s【4】;
for (int i=1;i<=4;i++)
s[i].setstudent();
}

你这代码没贴全吧,s变量哪来的。
你那错误应该是因为你没有给student类定义无参构造函数导致的,最好养成总是给类定义无参构造函数的习惯,否则经常会出问题

问题就在这了:student s【4】;
你这么声明一个数组,它默认去调用无参的构造函数,而你的类定义里却没有定义,当然会问题。你在类定义里加上无参构造函数
student(){}
这样就可以了。
因为你的构造函数里只有一个需要两个参数的构造函数student(int n,float s)